package servidor;
import clientes.Cliente;
import clienteslogados.ClienteLogado;
import eventop2p.EventoP2P;
import eventos.Evento;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.HashMap;
import java.util.Vector;
import tiposeventos.TipoEvento;
import tiposfisicos.TipoFisico;
import tiposstatus.TipoStatus;


public interface IdentificadorPerfilServidorInterface extends Remote {
    
    public Cliente login(String login, String senha, String IP) throws RemoteException;
    public Vector<Cliente> getClientesAtivos() throws RemoteException;
    public boolean logout(int idCliente) throws RemoteException;
    public boolean cadastrarCliente(Cliente cliente) throws RemoteException;
    public boolean removerCliente(Cliente cliente) throws RemoteException;
    public boolean enviarMensagem(Cliente origem, Cliente destino) throws RemoteException;
    



    public void adicionar(Cliente cliente) throws RemoteException;
    public void adicionar(ClienteLogado cliente) throws RemoteException;
    public void adicionar(Evento evento) throws RemoteException;
    public void adicionar(EventoP2P evento) throws RemoteException;
    public void adicionar(TipoEvento tipoEvento) throws RemoteException;
    public void adicionar(TipoFisico tipoFisico) throws RemoteException;
    public void adicionar(TipoStatus tipoStatus) throws RemoteException;
    public void remover(Cliente cliente) throws RemoteException;
    public void remover(Cliente cliente, Boolean operacao) throws RemoteException;
    public void remover(Cliente cliente, HashMap<String,String> operadores, Boolean operacao) throws RemoteException;
    public void remover(ClienteLogado cliente) throws RemoteException;
    public void remover(ClienteLogado cliente, Boolean operacao) throws RemoteException;
    public void remover(ClienteLogado cliente, HashMap<String,String> operadores, Boolean operacao) throws RemoteException;
    public void remover(Evento evento) throws RemoteException;
    public void remover(Evento evento, Boolean operacao) throws RemoteException;
    public void remover(Evento evento, HashMap<String,String> operadores, Boolean operacao) throws RemoteException;
    public void remover(EventoP2P evento) throws RemoteException;
    public void remover(EventoP2P evento, Boolean operacao) throws RemoteException;
    public void remover(EventoP2P evento, HashMap<String,String> operadores, Boolean operacao) throws RemoteException;
    public void remover(TipoEvento tipoEvento) throws RemoteException;
    public void remover(TipoEvento tipoEvento, Boolean operacao) throws RemoteException;
    public void remover(TipoEvento tipoEvento, HashMap<String,String> operadores, Boolean operacao) throws RemoteException;
    public void remover(TipoStatus tipoStatus) throws RemoteException;
    public void remover(TipoStatus tipoStatus, Boolean operacao) throws RemoteException;
    public void remover(TipoStatus tipoStatus, HashMap<String,String> operadores, Boolean operacao) throws RemoteException;
    public void remover(TipoFisico tipoFisico) throws RemoteException;
    public void remover(TipoFisico tipoFisico, Boolean operacao) throws RemoteException;
    public void remover(TipoFisico tipoFisico, HashMap<String,String> operadores, Boolean operacao) throws RemoteException;
    public void atualizar(Cliente cliente) throws RemoteException;
    public void atualizar(ClienteLogado cliente) throws RemoteException;
    public void atualizar(Evento evento) throws RemoteException;
    public void atualizar(EventoP2P evento) throws RemoteException;
    public void atualizar(TipoStatus tipoStatus) throws RemoteException;
    public void atualizar(TipoEvento tipoEvento) throws RemoteException;
    public void atualizar(TipoFisico tipoFisico) throws RemoteException;
    public Cliente procurar(Cliente cliente) throws RemoteException;
    public Cliente procurar(Cliente cliente, HashMap<String,String> operadores) throws RemoteException;
    public ClienteLogado procurar(ClienteLogado cliente) throws RemoteException;
    public ClienteLogado procurar(ClienteLogado cliente, HashMap<String,String> operadores) throws RemoteException;
    public Evento procurar(Evento evento) throws RemoteException;
    public Evento procurar(Evento evento,HashMap<String,String> operadores) throws RemoteException;
    public EventoP2P procurar(EventoP2P eventoP2P) throws RemoteException;
    public EventoP2P procurar(EventoP2P eventoP2P, HashMap<String,String> operadores) throws RemoteException;
    public TipoEvento procurar(TipoEvento evento) throws RemoteException;
    public TipoEvento procurar(TipoEvento tipoEvento, HashMap<String,String> operadores) throws RemoteException;
    public TipoFisico procurar(TipoFisico tipoFisico) throws RemoteException;
    public TipoFisico procurar(TipoFisico tipoFisico, HashMap<String,String> operadores) throws RemoteException;
    public TipoStatus procurar(TipoStatus tipoStatus) throws RemoteException;
    public TipoStatus procurar(TipoStatus tipoStatus, HashMap<String,String> operadores) throws RemoteException;

    public Vector procurarLista(Cliente cliente) throws RemoteException;
    public Vector procurarLista(Cliente cliente, HashMap<String,String> operadores) throws RemoteException;
    public Vector procurarLista(ClienteLogado cliente) throws RemoteException;
    public Vector procurarLista(ClienteLogado cliente, HashMap<String,String> operadores) throws RemoteException;
    public Vector procurarLista(Evento evento) throws RemoteException;
    public Vector procurarLista(Evento evento,HashMap<String,String> operadores) throws RemoteException;
    public Vector procurarLista(EventoP2P eventoP2P) throws RemoteException;
    public Vector procurarLista(EventoP2P eventoP2P, HashMap<String,String> operadores) throws RemoteException;
    public Vector procurarLista(TipoEvento evento) throws RemoteException;
    public Vector procurarLista(TipoEvento tipoEvento, HashMap<String,String> operadores) throws RemoteException;
    public Vector procurarLista(TipoFisico tipoFisico) throws RemoteException;
    public Vector procurarLista(TipoFisico tipoFisico, HashMap<String,String> operadores) throws RemoteException;
    public Vector procurarLista(TipoStatus tipoStatus) throws RemoteException;
    public Vector procurarLista(TipoStatus tipoStatus, HashMap<String,String> operadores) throws RemoteException;
    public int getQuantidadeCliente() throws RemoteException;
    public int getQuantidadeClienteLogado() throws RemoteException;
    public int getQuantidadeEvento() throws RemoteException;
    public int getQuantidadeEventoP2P() throws RemoteException;
    public int getQuantidadeTipoEvento() throws RemoteException;
    public int getQuantidadeTipoFisico() throws RemoteException;
    public int getQuantidadeTipoStatus() throws RemoteException;

}
